<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    
</body>
<script>
    //对象：一个具体的事物，一种复杂的数据类型，包括属性和方法
    //属性：对象的特征，用变量描述
    //方法：对象的行为（功能），用函数（方法）描述
    //创建对象：用字面量创建对象
    let obj1 = {};      //空对象
    console.log(obj1);     //
    console.log(typeof obj1);      //  object对象
    let obj2 = {
        //属性    属性名：值,多个属性之间用逗号(,)号隔开
        userName:'admin',
        password:'123',
        //方法
        login:function(){
            console.log('登陆成功');
        }
    };
    //访问对象
    //对象.变量名 或 对象['变量名']  访问对象的属性
    console.log(obj2.userName);
    console.log(obj2['password']);
    //对象.方法名() 或 对象['方法名']()  调用对象的方法
    obj2.login();
    obj2['login']();
    console.log('-----------------')
    /*创建对象：用构造函数创建对象
        构造函数：一种特殊的函数，通过关键new调用这个函数能构造出一个对象。
        step1:定义构造函数，一般将构造函数名的首字母大写；
        step2:使用关键字new构造函数对象。
    */
   function Stu(name,sex,id){
    //this关键字：这里
    this.name = name;    //把传入的实参name传递给当前对象中的属性name
    this.sex = sex;
    this.id = id;
    this.show = function(){
        console.log('我叫：'+this.name);
    };
   }
   //关键字new
   let student1 = new Stu('xiaomo','女',123);
   let student2 = new Stu('xiaoxian','女',3344);
   let student3 = new Stu('ailing','女',1314);
   student1.show();
   student2.show();
   student3.show();
   //创建对象：用Object()创建对象
   let obj3 = new Object();     //构造空对象
   //添加属性和行为
   obj3.name = 'root';
   obj3.psd = '123';
   obj3.login = function(){
    //模板字符：`${变量名}`
    console.log(`${obj3.name}登录成功`);
   };
   //访问对象
   obj3.login();


   //遍历对象for...in
   //用字面量创建对象，对象中有title,date,author属性和read()方法，
   let news = {
        title:'新闻',
        date:'日期',
        author:'作者',
        read:function(){
            console.log('阅读新闻'+this.title);
        }
    };
    news.read();
    for(let temp in news){
        console.log(temp);     //遍历出对象中属性的名字
        if(typeof news[temp]==='function'){
            news[temp]();
        }else{
            console.log(news[temp]);    //获取对象中属性的值
        }
    }
    //Math对象：不用实例化
    let num = Math.floor(-2.12);   //向下取整
    console.log(num);
    num = Math.random();    //取0~1之间的随机数
    console.log(num);
</script>
</html>